// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from "vscode"
import * as path from "path"
import * as fs from "fs"
import * as os from "os"
// import * as clipboardy from "clipboardy"
// const clipboardy = require('clipboardy');

// export function activate_例子2(context: vscode.ExtensionContext) {
//     // 监听粘贴事件
//     vscode.workspace.onDidPaste((event) => {
//         // 检查是否是在文本编辑器中粘贴
//         if (event.kind === vscode.ClipboardTextKind.PlainText && vscode.window.activeTextEditor) {
//             const editor = vscode.window.activeTextEditor;
//             const selection = editor.selection;

//             // 获取粘贴的文本内容
//             const text = event.text;

//             // 自定义逻辑：检查文本是否为图片（这里简化处理，实际中可能需要更复杂的检测）
//             if (/* 检测文本是否为图片的逻辑 */) {
//                 // 保存图片到指定目录
//                 const imagePath = saveImageToDirectory(text);

//                 // 将图片路径写入剪贴板
//                 vscode.env.clipboard.writeText(imagePath).then(() => {
//                     // 将原始文本内容放回剪贴板，以便默认粘贴操作可以使用
//                     vscode.env.clipboard.writeText(text);

//                     // 如果需要，可以在编辑器中插入图片路径
//                     editor.edit(editBuilder => {
//                         editBuilder.insert(selection.active, imagePath);
//                     });
//                 }).catch(error => {
//                     console.error('Failed to save image and update clipboard:', error);
//                     vscode.window.showErrorMessage('Failed to save image.');
//                 });
//             }
//         }
//     }, null, context.subscriptions);
// }

// 假设函数，用于保存图片到指定目录并返回图片路径
function saveImageToDirectory(imageData: string): string {
    const imageType = "png" // 假设图片是PNG格式
    const imageDirectory = path.join(os.homedir(), "images")
    const imagePath = path.join(imageDirectory, `image_${Date.now()}.${imageType}`)

    // 这里应该是将base64编码的图片数据写入文件的逻辑
    // 例如：fs.writeFileSync(imagePath, Buffer.from(imageData, 'base64'));

    return imagePath
}

export function activate(context: vscode.ExtensionContext) {
    // let disposable = vscode.commands.registerCommand("amtf.贴图", async () => {
    //     // 执行默认粘贴动作
    //     const originalPasteCommand = "editor.action.clipboardPasteAction"
    //     vscode.commands.executeCommand(originalPasteCommand)

    //     vscode.window.showInformationMessage("amtf-贴图 开始执行了 ")
    //     const imageBuffer = await vscode.env.clipboard.readImage()

    //     // 判断剪贴板中的内容是否是图片
    //     if (imageBuffer.startsWith("data:image")) {
    //         console.log("剪贴板中的内容是图片")
    //     } else {
    //         console.log("剪贴板中的内容不是图片")
    //     }
        
    //     // try {
    //     //     // 从剪贴板读取图片数据
    //     //     const imageBuffer = await vscode.env.clipboard.readText()

    //     //     // 判断剪贴板中的内容是否是图片
    //     //     if (imageBuffer.startsWith("data:image")) {
    //     //         console.log("剪贴板中的内容是图片")
    //     //     } else {
    //     //         console.log("剪贴板中的内容不是图片")
    //     //     }

    //     //     const imageType = "png" // 假设剪贴板中的图片是PNG格式
    //     //     const imagePath = path.join(__dirname, "images", `image_${Date.now()}.${imageType}`)
    //     //     // let imagePath = path.join(__dirname, 'images', `image_${Date.now()}.png`);
    //     //     // let imageData = clipboardData.replace(/^data:image\/\w+;base64,/, '');

    //     //     // 保存图片到指定目录
    //     //     fs.writeFileSync(imagePath, Buffer.from(imageBuffer, "base64"))

    //     //     // 将图片路径复制到剪贴板
    //     //     await vscode.env.clipboard.writeText(imagePath)

    //     //     // 获取当前活动的文本编辑器
    //     //     const editor = vscode.window.activeTextEditor
    //     //     if (editor) {
    //     //         // 获取当前光标位置
    //     //         const position = editor.selection.active

    //     //         // 在当前光标位置插入图片路径
    //     //         editor.edit(editBuilder => {
    //     //             editBuilder.insert(position, imagePath)
    //     //         })
    //     //     }
    //     // } catch (error) {
    //     //     console.error("Error saving image and path:", error)
    //     //     vscode.window.showErrorMessage("Failed to save image and path.")
    //     // }
    // })

    // context.subscriptions.push(disposable)

    let 贴图片路径 = vscode.commands.registerCommand('amtf.贴图片路径', () => {
        const editor = vscode.window.activeTextEditor;
        if (editor) {
            const snippet = new vscode.SnippetString('![一张图片]($0)');
            editor.insertSnippet(snippet).then(() => {
                vscode.commands.executeCommand('editor.action.clipboardPasteAction').then(() => {
                    const currentPosition = editor.selection.active;
                    const newPosition = currentPosition.with(currentPosition.line, editor.document.lineAt(currentPosition.line).range.end.character);
                    editor.selection = new vscode.Selection(newPosition, newPosition);
                    vscode.commands.executeCommand('type', { text: '\n' });
                });
            });
        }
    });

    context.subscriptions.push(贴图片路径);

}

export function deactivate() {
    // 清理资源
}
